Distributed device network-based control system with decoupled intelligence for smart windows

ABSTRACT

A distributed device control system is provided. The system includes a plurality of windows, each window of the plurality of windows having at least one electrochromic window, a voltage or current driver for the at least one electrochromic window, and a first control system local to the window. The system includes a plurality of window controllers, each window controller configured to couple to one or more of the plurality of windows and having a second control system, for the one or more of the plurality of windows, local to the window controller. The system includes a command and communication device configured to couple to each of the plurality of window controllers, configured to couple to a network, and having a third control system, for the plurality of windows, wherein control of the plurality of windows is distributed across the plurality of windows, the plurality of window controllers, the command and communication device, and a portion of the network.

BACKGROUND

Electrochromic devices, in which optical transmissivity is electricallycontrolled, are in current usage in building windows and in dimmableautomotive rearview mirrors. Generally, electrochromic windows for abuilding are controlled with a driver and a user input, e.g., a dimmercontrol. Electrochromic rearview mirrors in automotive usage often havea light sensor aimed to detect light from headlights of automobiles, andare user-settable to engage an auto-dim function that adjusts the tintof the mirror based on input from the light sensor. There is a need inthe art for a control system for electrochromic devices which goesbeyond such basic settings and functions.

SUMMARY

In some embodiments, a distributed device control system is provided.The system includes a plurality of windows, each window of the pluralityof windows having at least one electrochromic window, a voltage orcurrent driver for the at least one electrochromic window, and a firstcontrol system local to the window. The system includes a plurality ofwindow controllers, each window controller configured to couple to oneor more of the plurality of windows and having a second control system,for the one or more of the plurality of windows, local to the windowcontroller. The system includes a command and communication deviceconfigured to couple to each of the plurality of window controllers,configured to couple to a network, and having a third control system,for the plurality of windows, wherein control of the plurality ofwindows is distributed across the plurality of windows, the plurality ofwindow controllers, the command and communication device, and a portionof the network.

Other aspects and advantages of the embodiments will become apparentfrom the following detailed description taken in conjunction with theaccompanying drawings which illustrate, by way of example, theprinciples of the described embodiments.

BRIEF DESCRIPTION OF THE DRAWINGS

The described embodiments and the advantages thereof may best beunderstood by reference to the following description taken inconjunction with the accompanying drawings. These drawings in no waylimit any changes in form and detail that may be made to the describedembodiments by one skilled in the art without departing from the spiritand scope of the described embodiments.

FIG. 1 is a system diagram of a smart window system that has adistributed device network control system architecture in accordancewith some embodiments.

FIG. 2 is a system diagram of a smart window that has an electrochromicwindow and a window frame with an embedded module in accordance withsome embodiments.

FIG. 3 is a system diagram of an intelligent window controller, from thesmart window system of FIG. 1 in accordance with some embodiments.

FIG. 4 is a system diagram of a command and communication device, fromthe smart window system of FIG. 1 in accordance with some embodiments.

FIG. 5 is a block diagram showing aspects of the distributed devicenetwork control system architecture of FIG. 1 in accordance with someembodiments.

FIG. 6 is a flow diagram of a method of operating a smart window system,which can be practiced on or using the smart window system of FIG. 1 inaccordance with some embodiments.

FIG. 7 is an illustration showing an exemplary computing device whichmay implement the embodiments described herein.

DETAILED DESCRIPTION

A smart window system, disclosed herein, has a distributed devicenetwork control system architecture that can distribute control ofoptical transmissivity of smart windows across the smart windows,intelligent window controllers, a command and communication device, andone or more resources on a network. A smart window within such a systemcan be defined as a window with some local and/or external or remotecomputer processing capabilities and which is connectable to theinternet. In some embodiments the window is an electrochromic window butthis is not meant to be limiting as non-electrochromic windows may besmart windows as described herein. Electrochromic and non-electrochromicwindows may be integrated into the same system in some embodiments. Thesmart window may function as a glass partition in some embodiments andbe within an interior of a structure rather than have one surface facingan exterior in some embodiments. The smart window system combines inputfrom sensors integrated with the smart windows, user input, andinformation and direction from the network to control the smart windowsin an interactive, adaptive manner. Control can shift from one componentto another, be shared across multiple components, or be overridden byone component of the system, in various embodiments. The distributednature of the architecture and the control support various systembehaviors and capabilities.

FIG. 1 is a system diagram of a smart window system that has adistributed device network control system architecture in accordancewith an embodiment of the present disclosure. The system is both modularand distributed, and is suitable for installation in various living,working or commercial spaces, such as an apartment, house, an office, abuilding, a store, a mall, etc. Modularity allows for replacement ofindividual components, upgrades, expansion, linking of two or moresystems, and communication in the system and among multiple systems.Wireless couplings, wired couplings, and combinations thereof aresupported by the smart window system. Although antennas 124 are shownfor the wireless coupling, further embodiments could use infraredcoupling.

Control is distributed across one or more first control systems 114,with one in each smart window 102, one or more second control systems116, with one in each intelligent window controller 104 and/or in one ormore user devices 136 in some embodiments, a third control system 118 ina command and communication device 106, and a fourth control system 120in a server 108 coupled to a network 110. Each smart window 102 has anantenna 124 and is thereby wirelessly connected to a nearby intelligentwindow controller 104, also with an antenna 124. In further embodiments,a wired connection could be used. Each intelligent window controller 104is wirelessly connected to the command and communication device 106,which has an antenna 124. In further embodiments, a wired connectioncould be used. The command and communication device 106 is coupled to anetwork 110, such as the global communication network known as theInternet. This coupling could be made via a wireless router (e.g., in ahome, office, business or building), or a wired network connection. Userdevices 136 (e.g., smart phones, computers, various computing and/orcommunication devices) can couple to the command and communicationdevice 106, for example by a direct wireless connection or via thenetwork 110, or can couple to the server 108 via the network 110, as canother systems 138 and big data 112. In some embodiments, the server 108hosts an application programming interface 140. The server 108 could beimplemented in or include, e.g., one or more physical servers, or one ormore virtual servers implemented with physical computing resources, orcombinations thereof.

Modularity of the system supports numerous variations, layouts andinstallations. For example, each windowed room in a building could haveone or more smart windows 102 and a single intelligent window controller104 for that room. An intelligent window controller 104 could controlsmart windows 102 in part of a room, an entire room, or multiple rooms.The intelligent window controller(s) 104 for that floor of the building,or for a portion of or the entire building in some embodiments, couldtie into a single command and communication device 106, which is coupledto the network 110 and thereby coupled to the server 108. In arelatively small installation, one or more smart windows 102 couldcouple to a single intelligent window controller 104 for localdistributed control, or a single command and communication device 106for both local and network distributed control. In another embodiment,an intelligent window controller 104 could be combined with the commandand communication device 106, in a further embodiment for small systemsthat use both local control and network information. Larger systems,e.g., for multiple occupant buildings, could have multiple command andcommunication devices 106, e.g., one for each occupant or set ofoccupants, or each floor or level in the building, etc. Upgrades orexpansions are readily accommodated by the addition of furthercomponents according to the situation. Some embodiments have a driverintegrated in each smart window 102, for instance in combination withthe first control system 114. Or, a driver for one or more smart windows102 could be integrated with the intelligent window controller 104, fora lower cost or “thin” smart window 102. Such an embodiment of theintelligent window controller 104 could still be termed that, or couldbe termed an intelligent window controller/driver. One or moreintelligent window controllers 104 could be wall-mounted, as could thecommand and communication device 106. Or, the system could use one ormore user devices 136, each with a second control system 116, in placeof one or more intelligent window controllers 104. Some embodiments useone or more intelligent window controllers 104, each with a secondcontrol system 116, and one or more user devices 136, each with a secondcontrol system 116. In a further embodiment, a user device 136 couldhave the third control system 118, and a wireless coupling to thenetwork 110. It should be appreciated that in each of these variationsand embodiments, communication among the various devices and subsystemscan occur through wireless or wired connections and along paths that areimplementation specific. Versions with one or more user devices 136 canbe implemented with one or more apps (applications) executing in eachuser device 136.

In one embodiment as shown in FIG. 1, the command and communicationdevice 106 has a wireless interface 128, a wired interface 130, acontrol system 118, a rules engine 132, a network interface 134, and auser I/O (input/output) module 142. The wireless interface 128 and/orthe wired interface 130 are used for coupling to the intelligent windowcontroller(s) 104. The network interface 134 is used for connecting tothe network 110. For example, the network interface 134 could connect toa wireless router or Wi-Fi, e.g., via the wireless interface 128, or toa wired network via the wired interface 130. In some embodiments, thewireless interface 128 and/or the wired interface 130 can couple tothird-party devices for sensing, input and/or output (see, e.g.,description regarding FIG. 3). The rules engine 132 uses informationfrom the network 110, which can include direction from the fourthcontrol system 120 in the server 108, and can include information fromuser devices 136, other systems 138, or big data 112, to create,populate, modify, or adapt various rules for operation of the smartwindows 102. The rules can include various instructions for operation ofsmart windows with or without network connectivity. In addition, therules of the rules engine are adaptive in some embodiments. For example,the rules may change based on patterns of user behavior. The user I/Omodule 142 accepts user input, e.g., via buttons, a touchscreen, etc.,and displays user output, e.g., via a display screen or with LEDs orother lamps, etc. Some embodiments may lack the user I/O module 142, orhave a user input module or an output module. In keeping with the natureof this distributed control system, the third control system 118 of thecommand and communication device 106 can direct operation of the smartwindows 102, the second control system 116 of the intelligent windowcontroller(s) 104 can direct operation of the smart windows 102, thefourth control system 120 of the server 108 can direct operation of thesmart windows 102, and/or the first control system 114 of each smartwindow 102 can direct operation of that smart window 102, in variouscombinations. Some embodiments have a failover mechanism, in whichcontrol and/or communication are routed around a failed device in thesystem.

As shown by the dashed lines, communication can proceed amongst variousmembers of the smart window system over various paths, in variousembodiments. In some embodiments, a message or other communication ispassed along a chain, such as from a smart window 102, to an intelligentwindow controller 104, or via the intelligent window controller 104 tothe command and communication device 106, and vice versa. In someembodiments, a device can be bypassed, either by direct communicationbetween two devices or by a device acting as a relay. For example, asmart window 102 could communicate directly with a command andcommunication device 124 wirelessly via the wireless interface 128 orvia the wired interface 130. Alternatively, an intelligent windowcontroller 104 could relay a message or other communication, as couldthe command and communication device 106. In some embodiments, messagesor communications can be addressed to any component or device in thesystem, or broadcast to multiple devices, etc. This could beaccomplished using packets for communication, and in some embodimentsany of the control systems 114, 116, 118, 120 can communicate with thecloud, e.g., the network 110. In some embodiments, smart windows 102 canact as peer devices and communicate with each other, for example tocarry out a user command, communicate an event or status, or execute inaccordance to one or more rules.

FIG. 2 is a system diagram of a smart window 102 that has anelectrochromic window 204 and a window frame 202 with an embedded module206. The embedded module 206 could be positioned at the bottom, top, toone or both sides, or distributed around the window frame 202 in variousembodiments. The embedded module 202 has one or more sensors 212, whichcould include temperature, light, audio/acoustic (i.e., sound),vibration, video or still image, motion, smoke detection, chemical,humidity or other sensors, and which could be facing inwards, i.e., intoa room, or outwards, i.e., to the exterior of the room or building, invarious embodiments. The wireless interface 128 has an antenna 124,which is used for coupling to the intelligent window controller(s) 104,the command and communication device 106, and/or one or more userdevices 136 (e.g., a smart phone, a user wearable device, etc.). A wiredinterface 130 could also be included, or could be used in place of awireless interface 128. The control system 114, shown as the firstcontrol system 114 in FIG. 1, provides local control for theelectrochromic window 204 via the voltage or current driver 208.Alternatively, the control system 114 participates in distributedcontrol. Some embodiments have a rules engine 132 in the module 206. Thevoltage or current driver 208 sends voltage or current to bus bars ofthe electrochromic window 204, as directed by one or more of the controlsystems 114, 116, 118, 120, to control transmissivity of theelectrochromic window 204. In some embodiments, to change transmissivityof the electrochromic window 204, the voltage or current driver 208provides constant current until a sense voltage of the electrochromicwindow 204 is reached. Then, the voltage or current driver 208 providesa current that maintains the sense voltage at a constant voltage, untila total amount of charge is transferred to the electrochromic window 204for the new transmissivity level. The embedded module 206 also includesan input device 214, or a user I/O module 142, through which user inputcan be entered at the smart window 102. In some embodiments, user inputcan also be entered through the wireless interface 128, e.g., from asmart phone.

FIG. 3 is a system diagram of an intelligent window controller 104, fromthe smart window system of FIG. 1. The intelligent window controller 104includes a wireless interface 128 with an antenna 124, a wired interface130, a user I/O module 142, and a control system 116, which is shown asthe second control system 116 in FIG. 1. Some embodiments have a rulesengine 132. The wireless interface 128 couples to one or more smartwindows 102 via the wireless interface 128, as shown in FIG. 1, althoughthe wired interface 130 could be used in further embodiments. Either thewireless interface 128 or the wired interface 130 can be used to coupleto the command and communication device 106, in various embodiments.Some embodiments have both the wireless interface 128 and the wiredinterface 130, and each of these can communicate to other components anddevices as a failover if the other fails. In some embodiments, thewireless interface 128 and/or the wired interface 130 can couple tofurther devices, such as third-party devices for input information,sensing or control output. For example, the system could control orinteract with lighting controllers, HVAC (heating, ventilation andair-conditioning, e.g., by coupling to a thermostat), burglar and/orfire alarm systems, smart phones, or other systems or devices, orreceive further input from further sensors, cameras, etc. The user I/Omodule 142 could include buttons, a touchpad, a touchscreen, a displayscreen, etc., for user input to the system and/or output from thesystem. The second control system 116 participates in distributedcontrol with the first control system 114 of the smart window 102, orcan override the first control system 114. In some embodiments, thesecond control system 116 relays direction from the third control system118 of the command and communication device, or the fourth controlsystem 120 of the server 108, to one or more smart windows 102.

FIG. 4 is a system diagram of a command and communication device 106,from the smart window system of FIG. 1. Since the command andcommunication device 106 is coupled to the network 110, in someembodiments the command and communication device 106 has variousprotections against unauthorized access. Various embodiments have one,some, or all of the following protections, and various combinations, andmay have further protections in variations thereof. Here, the commandand communication device 106 has a firewall 104, a malware protectionengine 408, an authentication engine 402, and a certificate repository406. The firewall 104 is applied in a conventional manner, tocommunications arriving via the wired interface 130 or the wirelessinterface 128 (see FIG. 1).

The authentication engine 402 can be applied to authenticate anycomponent that is coupled to or desires to couple to the command andcommunication device 106. For example, each smart window 102 could beauthenticated, each intelligent window controller 104 could beauthenticated, and the server 108 could be authenticated, as could anyuser device 136 or other system 138 attempting to access the smartwindow system. The command and communication device 106 can authenticateitself, for example to the server 108. To do so, the command andcommunication device 106 uses a certificate from the certificaterepository 406 for an authentication process (e.g., a “handshake”)applied by the authentication engine 402. In some embodiments,certificates are created and issued by a trusted third-party certificateauthority to a manufacturer of the smart windows 102, and stored inmemory in each smart window 102. A certificate could be revoked orupdated by actors higher in the distributed control system, for examplefrom a management application in the network 110 (e.g., in the fourthcontrol system 120 or elsewhere in the cloud).

The malware protection engine 408 can look for malware in any of thecommunications received by the commanded communication device 106, andblock, delete, isolate or otherwise handle suspected malware in a mannersimilar to how this is done on personal computers, smart phones and thelike. Updates, e.g., malware signatures, improved malware detectionalgorithms, etc., are transferred to the malware protection engine 408via the network 110, e.g., from the server 108 or one of the othersystems 138 such as a malware protection service.

FIG. 5 is a block diagram showing aspects of the distributed devicenetwork control system architecture of FIG. 1. Although thisarchitecture lends itself to hierarchical control, which is nonethelesspossible and can be performed by overrides from components higher up inthe chain, it should be appreciated that control is generallydistributed across and movable among the first control system(s) 114,the second control system(s) 116, the third control system 118 and thefourth control system 120, i.e., distributed across and movable amongthe server 108, the command and communication device 106, theintelligent window controllers 104, and the smart windows 102. Someembodiments omit one or more of the control systems 114, 116, 118, 120,and some embodiments form a lumped control system. Some embodiments canfunction if one or more of the control systems 114, 116, 118, 120 istemporarily or permanently omitted as a result of failure or networkoutage, by lumping control functions together, operating in a failovermode, or otherwise compensating for the omission. A temporarily failedor omitted control system 114, 116, 118, 120 can rejoin and participatein system recovery with resumption of appropriate control functions andresolution of parameters or rules. Embodiments with two or more of thecontrol systems 114, 116, 118, 120 have a distributed control system.Smart windows 102 can be operated individually, or in various groups(e.g., facing in a particular direction, or associated with a particularroom or group of rooms, or level or floor of a house or other building,subsets or groupings of windows, and so on) using this distributedcontrol architecture. Generally, each control system 114, 116, 118, 120controls or directs one or more of the smart windows 102, in cooperationwith other members of the system. Each control system 114, 116, 118, 120has respective rules, e.g., the first control system 114 has first rules502, the second control system has second rules 504, the third controlsystem 118 has third rules 506, the fourth control system 120 has fourthrules 508. Each control system 114, 116, 118, 120 operates according toits local rules, which may incorporate rules distributed from otherdevices, unless overridden by another device in the system. Rules caninclude cooperation with other devices, and rules can includeinstructions allowing for when an override is permissible. For example,an intelligent window controller 104 could override a smart window 102,the command and communication device 106 could override an intelligentwindow controller 104 or a smart window 102, the server 108 couldoverride the command and communication device 106, an intelligent windowcontroller 104, or a smart window 102, or user input at one of thedevices or from a user device 136 could override one or more of these.Information from the sensors 212 of the smart window(s) 102 enters thesystem through the first control system(s) 114, and can be routed ordirected to any of the further control systems 116, 118, 120.Information 510 from the network enters the system through the fourthcontrol system 120, i.e., the server 108, and/or the third controlsystem 118, i.e., the command and communication device 106, and can berouted or directed to any of the further control systems 114, 116. Userinput can enter the system through the smart windows 102, e.g., throughuser input at that smart window 102 or wireless user input from a userdevice 136 to the smart window 102. User input can also enter the systemthrough the intelligent window controller(s) 104, e.g., through userinput at the intelligent window controller 104 or wireless user inputfrom a user device 136. User input can enter the system through thethird control system 118, e.g., through a wireless coupling from a userdevice 136 or via the network connection, e.g., from a user device 136.User input can enter the system through the fourth control system 120,e.g., via the server 108. From any of these entry points, the user inputcan be routed to any of the control systems 114, 116, 118, 120. Each ofthe control systems 114, 116, 118, 120 can communicate with each othercontrol system 114, 116, 118, 120, and can update respective rules 502,504, 506, 508 as self-directed or directed by another one or combinationof the control systems 114, 116, 118, 120. Control can be cooperative,voted, directed, co-opted, overridden, local, distributed, hierarchical,advisory, absolute, and so on, in various combinations at various timesduring operation of the system, in various embodiments.

In some embodiments, the smart window system operates the smart windows102 in a continuous manner, even if there is a network 110 outage (e.g.,there is a network outage outside of the building, a server is down, ora wireless router for the building is turned off or fails, etc.). Thefirst control system 114, the second control system 116 and/or the thirdcontrol system 118 can direct the smart windows 102 without informationfrom the network, under such circumstances. In various combinations,each of the control systems 114, 116, 118, 120 can create, store, shareand/or distribute time-bound or event-bound instructions (e.g.,instructions with goals to perform a particular action at or by aparticular time or for a specified event or specified number of events),and these time-bound instructions provide continuity of operation evenwhen one or more devices, or a network, has a failure. When the network110 is available, the third control system 118 obtains weatherinformation from the network, either directly at the third controlsystem 118 or with assistance from the server 108.

For example, the third control system 118 could include and applycloud-based adaptive algorithms. With these, the third control system118 can then direct operation of the smart windows 102 based on theweather information. One or a combination of the control systems 114,116, 118, 120 can direct operation of the smart windows 102 based onsensor information, such as from light, image, sound or temperaturesensors of the smart windows 102. For example, if the weatherinformation indicates cloud cover, or sensors 212 are picking up loweredlight levels, the system could direct an increase in transmissivity ofthe smart windows 102, to let more natural light in to the building. Ifthe weather information indicates bright sun, or sensors 212 are pickingup increased or high light levels, the system could direct a decrease intransmissivity of the smart windows 102, to decrease the amount ofnatural light let in to the building. The system can modify suchdirection according to orientation of each window, so that windowspointing away from the incidence of sunlight are directed differentlythan windows pointing towards incidence of sunlight. If weatherinformation indicates sunlight, and temperature sensors indicate lowtemperatures, the system could direct increased transmissivity of thesmart windows 102, in order to let in more natural light and increaseheating of a building interior naturally. In some embodiments, if thetemperatures sensors indicate relatively high temperatures, the systemcould direct decreased transmissivity of the smart windows 102, to blocknatural light and thereby hold down the heating of the interior of thebuilding by sunlight.

FIG. 6 is a flow diagram of a method of operating a smart window system,which can be practiced on or using the smart window system of FIG. 1 orfurther embodiments thereof. The method can be practiced by processorsof the window system embodiments described herein. In an action 602, thetransmissivity of the windows is controlled by first control systems ofthe windows. The control of the transmissivity may be based on sensorinformation from sensors of the smart windows, and direction from secondcontrol systems of intelligent window controllers coupled to the smartwindows, or direction from a third control system of a command andcommunication device coupled to the intelligent window controllers.

In an action 604, the transmissivity of the windows is directed from thesecond control systems of the intelligent window controllers. Thedirection of the transmissivity is in cooperation with the smart windowsin some embodiments. In an action 606, the transmissivity of the smartwindows is directed from the third control system of the command andcommunication device. The direction of the transmissivity is incooperation with the intelligent window controllers and the smartwindows in some embodiments. This directing is based on the sensorinformation from the sensors of the smart windows, or informationobtained from a network to which the command and communication device iscoupled. In an action 608, the transmissivity of the smart windows isdirected from a fourth control system of a network-corrected server,which is coupled to the command and communication device via thenetwork.

It should be appreciated that the methods described herein may beperformed with a digital processing system, such as a conventional,general-purpose computer system. Special purpose computers, which aredesigned or programmed to perform only one function may be used in thealternative. FIG. 7 is an illustration showing an exemplary computingdevice which may implement the embodiments described herein. Thecomputing device of FIG. 7 may be used to perform embodiments of thefunctionality for controlling smart windows in accordance with someembodiments. The computing device includes a central processing unit(CPU) 701, which is coupled through a bus 705 to a memory 703, and massstorage device 707. Mass storage device 707 represents a persistent datastorage device such as a floppy disc drive or a fixed disc drive, whichmay be local or remote in some embodiments. The mass storage device 707could implement a backup storage, in some embodiments. Memory 703 mayinclude read only memory, random access memory, etc. Applicationsresident on the computing device may be stored on or accessed via acomputer readable medium such as memory 703 or mass storage device 707in some embodiments. Applications may also be in the form of modulatedelectronic signals modulated accessed via a network modem or othernetwork interface of the computing device. It should be appreciated thatCPU 701 may be embodied in a general-purpose processor, a specialpurpose processor, or a specially programmed logic device in someembodiments.

Display 711 is in communication with CPU 701, memory 703, and massstorage device 707, through bus 705. Display 711 is configured todisplay any visualization tools or reports associated with the systemdescribed herein. Input/output device 709 is coupled to bus 705 in orderto communicate information in command selections to CPU 701. It shouldbe appreciated that data to and from external devices may becommunicated through the input/output device 709. CPU 701 can be definedto execute the functionality described herein to enable thefunctionality described with reference to FIGS. 1-6. The code embodyingthis functionality may be stored within memory 703 or mass storagedevice 707 for execution by a processor such as CPU 701 in someembodiments. The operating system on the computing device may be MSDOS™, MS-WINDOWS™, OS/2™, LINUX™, OSX™, iOS™, Android Windows™, or otherknown mobile and desktop operating systems. It should be appreciatedthat the embodiments described herein may also be integrated with avirtualized computing system implemented with physical computingresources.

Detailed illustrative embodiments are disclosed herein. However,specific functional details disclosed herein are merely representativefor purposes of describing embodiments. Embodiments may, however, beembodied in many alternate forms and should not be construed as limitedto only the embodiments set forth herein.

It should be understood that although the terms first, second, etc. maybe used herein to describe various steps or calculations, these steps orcalculations should not be limited by these terms. These terms are onlyused to distinguish one step or calculation from another. For example, afirst calculation could be termed a second calculation, and, similarly,a second step could be termed a first step, without departing from thescope of this disclosure. As used herein, the term “and/or” and the “/”symbol includes any and all combinations of one or more of theassociated listed items.

As used herein, the singular forms “a”, “an” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprises”,“comprising”, “includes”, and/or “including”, when used herein, specifythe presence of stated features, integers, steps, operations, elements,and/or components, but do not preclude the presence or addition of oneor more other features, integers, steps, operations, elements,components, and/or groups thereof. Therefore, the terminology usedherein is for the purpose of describing particular embodiments only andis not intended to be limiting.

It should also be noted that in some alternative implementations, thefunctions/acts noted may occur out of the order noted in the figures.For example, two figures shown in succession may in fact be executedsubstantially concurrently or may sometimes be executed in the reverseorder, depending upon the functionality/acts involved.

With the above embodiments in mind, it should be understood that theembodiments might employ various computer-implemented operationsinvolving data stored in computer systems. These operations are thoserequiring physical manipulation of physical quantities. Usually, thoughnot necessarily, these quantities take the form of electrical ormagnetic signals capable of being stored, transferred, combined,compared, and otherwise manipulated. Further, the manipulationsperformed are often referred to in terms, such as producing,identifying, determining, or comparing. Any of the operations describedherein that form part of the embodiments are useful machine operations.The embodiments also relate to a device or an apparatus for performingthese operations. The apparatus can be specially constructed for therequired purpose, or the apparatus can be a general-purpose computerselectively activated or configured by a computer program stored in thecomputer. In particular, various general-purpose machines can be usedwith computer programs written in accordance with the teachings herein,or it may be more convenient to construct a more specialized apparatusto perform the required operations.

A module, an application, a layer, an agent or other method-operableentity could be implemented as hardware, firmware, or a processorexecuting software, or combinations thereof. It should be appreciatedthat, where a software-based embodiment is disclosed herein, thesoftware can be embodied in a physical machine such as a controller. Forexample, a controller could include a first module and a second module.A controller could be configured to perform various actions, e.g., of amethod, an application, a layer or an agent.

The embodiments can also be embodied as computer readable code on atangible non-transitory computer readable medium. The computer readablemedium is any data storage device that can store data, which can bethereafter read by a computer system. Examples of the computer readablemedium include hard drives, network attached storage (NAS), read-onlymemory, random-access memory, CD-ROMs, CD-Rs, CD-RWs, magnetic tapes,and other optical and non-optical data storage devices. The computerreadable medium can also be distributed over a network coupled computersystem so that the computer readable code is stored and executed in adistributed fashion. Embodiments described herein may be practiced withvarious computer system configurations including hand-held devices,tablets, microprocessor systems, microprocessor-based or programmableconsumer electronics, minicomputers, mainframe computers and the like.The embodiments can also be practiced in distributed computingenvironments where tasks are performed by remote processing devices thatare linked through a wire-based or wireless network.

Although the method operations were described in a specific order, itshould be understood that other operations may be performed in betweendescribed operations, described operations may be adjusted so that theyoccur at slightly different times or the described operations may bedistributed in a system which allows the occurrence of the processingoperations at various intervals associated with the processing.

In various embodiments, one or more portions of the methods andmechanisms described herein may form part of a cloud-computingenvironment. In such embodiments, resources may be provided over theInternet as services according to one or more various models. Suchmodels may include Infrastructure as a Service (IaaS), Platform as aService (PaaS), and Software as a Service (SaaS). In IaaS, computerinfrastructure is delivered as a service. In such a case, the computingequipment is generally owned and operated by the service provider. Inthe PaaS model, software tools and underlying equipment used bydevelopers to develop software solutions may be provided as a serviceand hosted by the service provider. SaaS typically includes a serviceprovider licensing software as a service on demand. The service providermay host the software, or may deploy the software to a customer for agiven period of time. Numerous combinations of the above models arepossible and are contemplated.

Various units, circuits, or other components may be described or claimedas “configured to” perform a task or tasks. In such contexts, the phrase“configured to” is used to connote structure by indicating that theunits/circuits/components include structure (e.g., circuitry) thatperforms the task or tasks during operation. As such, theunit/circuit/component can be said to be configured to perform the taskeven when the specified unit/circuit/component is not currentlyoperational (e.g., is not on). The units/circuits/components used withthe “configured to” language include hardware—for example, circuits,memory storing program instructions executable to implement theoperation, etc. Reciting that a unit/circuit/component is “configuredto” perform one or more tasks is expressly intended not to invoke 35U.S.C. 112, sixth paragraph, for that unit/circuit/component.Additionally, “configured to” can include generic structure (e.g.,generic circuitry) that is manipulated by software and/or firmware(e.g., an FPGA or a general-purpose processor executing software) tooperate in manner that is capable of performing the task(s) at issue.“Configured to” may also include adapting a manufacturing process (e.g.,a semiconductor fabrication facility) to fabricate devices (e.g.,integrated circuits) that are adapted to implement or perform one ormore tasks.

The foregoing description, for the purpose of explanation, has beendescribed with reference to specific embodiments. However, theillustrative discussions above are not intended to be exhaustive or tolimit the invention to the precise forms disclosed. Many modificationsand variations are possible in view of the above teachings. Theembodiments were chosen and described in order to best explain theprinciples of the embodiments and its practical applications, to therebyenable others skilled in the art to best utilize the embodiments andvarious modifications as may be suited to the particular usecontemplated. Accordingly, the present embodiments are to be consideredas illustrative and not restrictive, and the invention is not to belimited to the details given herein, but may be modified within thescope and equivalents of the appended claims.

What is claimed is:
 1. A distributed device control system, comprising:a plurality of electrochromic windows including a voltage driver foreach of the electrochromic windows, and a first control system local torespective electrochromic window; a plurality of window controllers,each window controller configured to couple to one or more of theplurality of electrochromic windows and having a second control system,for the one or more of the plurality of electrochromic windows, local torespective window controller; and a command and communication deviceconfigured to couple to each of the plurality of window controllers,having a third control system, for the plurality of electrochromicwindows, wherein a server gathers information from windows in aplurality of buildings and develops profiles, and wherein thedistributed control of the plurality of electrochromic windows is basedin part on the profiles developed in the server.